#ifndef VoEMediaProcessImpl_H
#define VoEMediaProcessImpl_H

#include "voe_external_media.h"
#include "audio_device_defines.h"
#include "jni_api.h"

class VoEMediaProcessImpl : public webrtc::VoEMediaProcess, public JniCallbackGlobal
{
public:
	VoEMediaProcessImpl(void);
	~VoEMediaProcessImpl(void);

protected:	//JniCallbackBase
	virtual bool init_jni(JNIEnv* env);

public:
	virtual void Process(const int channel, const webrtc::ProcessingTypes type,
		WebRtc_Word16 audio10ms[], const int length,
		const int samplingFreq, const bool isStereo);

protected:
	jmethodID m_mid_Process;
	jclass m_cls_ProcessingTypes;
	jmethodID m_mid_ProcessingTypes_fromValue;
};

#endif //!VoEMediaProcessImpl_H
